home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Python 1.3.3 / Python 133 SRC / Demo / www / TestFormatter.py < prev    next >
Text File  |  1996-03-12  |  3KB  |  178 lines

  1. import sys, os, string, stdwin
  2. from stdwinevents import *
  3. from Formatter import *
  4.  
  5.  
  6. def TSTART():
  7.     global t0, t1
  8.     u, s = os.times()[:2]
  9.     t0 = u + s
  10.  
  11. def TSTOP():
  12.     global t0, t1
  13.     u, s = os.times()[:2]
  14.     t1 = u + s
  15.     sys.stderr.write(`t1-t0` + ' secs.\n')
  16.  
  17.  
  18. def openfile():
  19.     if sys.argv[1:] and sys.argv[1] <> '-':
  20.         return open(sys.argv[1], 'r')
  21.     else:
  22.         return sys.stdin
  23.  
  24.  
  25. def feedfile(fp, fmt):
  26.     while 1:
  27.         line = fp.readline()
  28.         if not line:
  29.             break
  30.         words = string.split(line)
  31.         if not words:
  32.             fmt.vspace(1)
  33.         else:
  34.             for word in words:
  35.                 fmt.addword(word, 1)
  36.     fmt.flush()
  37.  
  38.  
  39. def makecalls(fp, FMT):
  40.     calls = []
  41.     while 1:
  42.         line = fp.readline()
  43.         if not line:
  44.             break
  45.         words = string.split(line)
  46.         if not words:
  47.             calls.append(FMT.vspace, 1)
  48.         else:
  49.             for word in words:
  50.                 calls.append(FMT.addword, word, 1)
  51.     calls.append((FMT.flush,))
  52.     return calls
  53.  
  54.  
  55. def feedcalls(calls, fmt):
  56.     self = (fmt,)
  57.     for call in calls:
  58.         apply(call[0], self + call[1:])
  59.  
  60.  
  61. def test():
  62.     fp = openfile()
  63.     TSTART()
  64.     fmt = WritingFormatter().init(sys.stdout, 72)
  65.     feedfile(fp, fmt)
  66.     TSTOP()
  67.  
  68.  
  69. def wtest():
  70.     fp = openfile()
  71.     w = stdwin.open('wtest')
  72.     while 1:
  73.         type, win, detail = stdwin.getevent()
  74.         if type == WE_CLOSE:
  75.             break
  76.         if type == WE_DRAW:
  77.             TSTART()
  78.             left, top = 0, 0
  79.             right, bottom = w.getwinsize()
  80.             d = w.begindrawing()
  81.             fmt = StdwinFormatter().init(d, left, top, right)
  82.             fp.seek(0)
  83.             feedfile(fp, fmt)
  84.             d.close()
  85.             TSTOP()
  86.     w.close()
  87.  
  88.  
  89. def wwtest():
  90.     fp = openfile()
  91.     TSTART()
  92.     calls = makecalls(fp, StdwinFormatter)
  93.     TSTOP()
  94.     w = stdwin.open('wwtest')
  95.     while 1:
  96.         type, win, detail = stdwin.getevent()
  97.         if type == WE_CLOSE:
  98.             break
  99.         if type == WE_DRAW:
  100.             TSTART()
  101.             left, top = 0, 0
  102.             right, bottom = w.getwinsize()
  103.             d = w.begindrawing()
  104.             fmt = StdwinFormatter().init(d, left, top, right)
  105.             feedcalls(calls, fmt)
  106.             d.close()
  107.             TSTOP()
  108.     w.close()
  109.  
  110.  
  111. def wwwtest():
  112.     fp = openfile()
  113.     TSTART()
  114.     calls = makecalls(fp, StdwinFormatter)
  115.     TSTOP()
  116.     w = stdwin.open('wwwtest')
  117.     TSTART()
  118.     left, top = 0, 0
  119.     right, bottom = w.getwinsize()
  120.     fmt = BufferingStdwinFormatter().init(left, top, right)
  121.     feedcalls(calls, fmt)
  122.     bottom = fmt.getbottom()
  123.     w.setdocsize(0, bottom)
  124.     TSTOP()
  125. ##    for x in fmt.buffer: print x
  126.     while 1:
  127.         type, win, detail = stdwin.getevent()
  128.         if type == WE_CLOSE:
  129.             break
  130.         if type == WE_SIZE:
  131.             width, height = w.getwinsize()
  132.             if width <> right:
  133.                 TSTART()
  134.                 left, top = 0, 0
  135.                 right, bottom = w.getwinsize()
  136.                 fmt = BufferingStdwinFormatter(). \
  137.                     init(left, top, right)
  138.                 feedcalls(calls, fmt)
  139.                 bottom = fmt.getbottom()
  140.                 w.setdocsize(0, bottom)
  141.                 TSTOP()
  142.         if type == WE_DRAW:
  143.             TSTART()
  144.             d = w.begindrawing()
  145.             fmt.render(d, detail)
  146.             d.close()
  147.             TSTOP()
  148.     w.close()
  149.  
  150.  
  151.  
  152.  
  153. def gltest():
  154.     import gl, fm
  155.     gl.foreground()
  156.     W, H = 1000, 800
  157.     gl.prefsize(W, H)
  158.     wid = gl.winopen('gltest')
  159.     gl.ortho2(0, W, H, 0)
  160.     gl.color(7)
  161.     gl.clear()
  162.     gl.color(0)
  163.     fp = openfile()
  164.     TSTART()
  165.     fmt = GLFormatter().init(5, 0, W)
  166.     feedfile(fp, fmt)
  167.     fmt.flush()
  168.     TSTOP()
  169.     import time
  170.     time.sleep(5)
  171.  
  172.  
  173. #test()
  174. #wtest()
  175. #wwtest()
  176. #wwwtest()
  177. #gltest()
  178.